package cn.foolishbird.crow.core;


/**
 * 统一策略管理器
 *
 * @author foolish-bird
 */
public interface StrategyManager<S> {

    /**
     * default execution policy
     *
     * @return
     */
    S defaultStrategy();

    /**
     * select the policy to execute
     *
     * @param type
     * @return
     */
    S strategy(Enum<? extends CrowEnum> type);

}
